#include<bits/stdc++.h>
using namespace std;
int n,m;
int sx,sy;
char h[25][25];
bool st[25][25];
int dir[4][2]={{-1,0},{1,0},{0,-1},{0,1}};
int step=1;
void dfs(int x,int y)
{
	for(int i=0;i<=3;i++)
	{
		int tx=x+dir[i][0];
		int ty=y+dir[i][1];
		if(tx>=0&&tx<=n-1&&ty>=0&&ty<=m-1&&!st[tx][ty]&&h[tx][ty]=='.')
		{
			step++;
			st[tx][ty]=true;
			dfs(tx,ty);
		}
	}
}
int main()
{
	while(cin>>m>>n&&n!=0&&m!=0)
	{
		step=1;
		memset(st,0,sizeof(st));
        memset(h,0,sizeof(h));
		for(int i=0;i<n;i++)
		{
			for(int j=0;j<m;j++)
			{
				cin>>h[i][j];
				if(h[i][j]=='@')
				{
					sx=i;
					sy=j;
					st[i][j]=true;
				}
			}
		}
		dfs(sx,sy);
		cout<<step<<endl;
	}
	return 0;
} 
